import { useMenuStore } from '@/stores/modules/menu'

/**
 * el: 绑定指令元素
 * binding: 对象，
 *   包含value：传递给指令的值。例如在 v-my-directive="1 + 1" 中，值是 2
 *    参见官方文档
 *  在需要按钮资源权限的元素添加指令 v-permession
 *   <el-button  v-permession="[DeleteProduct]">删除</el-button>
 */
//  app.directive('permession', )
export const permession =  (el:any, binding:any) => {
    const menuStore = useMenuStore()
    // 这会在 `mounted` 和 `updated` 时都调用
    // 1. 获取当前角色资源列表 [AddProduct,EditProduct...]
    const resourceList = menuStore.resourceList
    // 2. 按钮绑定的权限值 binding.value
    const value = binding.value
    if (value && Array.isArray(value) && value.length > 0) {

        const isHide = resourceList.some(item => value.includes(item))
        
        if(!isHide){
            el && el.remove() 
        }else{
            console.log('need rols! Like v-perisson =["AddUser","EditUser"]')
        }
    }
}